home *** CD-ROM | disk | FTP | other *** search
/ Shareware Games Galore! / Shareware Games Galore!.iso / arcade / gameser5 / slot.bas (.txt) < prev    next >
Encoding:
GW-BASIC  |  1980-01-01  |  5.9 KB  |  174 lines

  1. 10  DEFINT A-Z
  2. 20  DIM RE(25), CE(25), MV(25), VM(10), MC(25), CM(10)
  3. 30  KEY OFF : SCREEN 0 : WIDTH 40 :CLS
  4. 40  F = 1
  5. 50  RANDOMIZE CVI(MID$(TIME$,7,2))
  6. 60  VM(1) = 1: VM(2) = 1: VM(3) = 1: VM(4) = 1: VM(5) = 2
  7. 70  VM(6) = 2: VM(7) = 2: VM(8) = 3: VM(9) = 3: VM(10) = 5
  8. 80  CM(1) = 25:CM(2) =25: CM(3) =25: CM(4) =25: CM(5)=157
  9. 90  CM(6) = 157: CM(7) =157: CM(8) = 15:CM(9)=15:CM(10) = 2
  10. 100  LOCATE 7,1
  11. 140  PRINT "        Press 4 for 40 columns"
  12. 150  PRINT "        Press 8 for 80 columns";:LOCATE ,,0
  13. 160  X$ = INKEY$
  14. 170  IF X$ = "4" THEN GOSUB 1230 : GOTO 200
  15. 180  IF X$ = "8" THEN GOSUB 1390 : GOTO 200
  16. 181  IF X$ = "Q" THEN CLS :END
  17. 185  IF X$ = "r" THEN GOSUB 3000
  18. 190  GOTO 160
  19. 200  X$ = INKEY$
  20. 210  IF X$ = "e" THEN MM=21 : LV=15 : SLV=2 : NE=25-2*F : GOTO 270
  21. 220  IF X$ = "m" THEN MM=21 : LV=10 : SLV=7 : NE=20-2*F : GOTO 270
  22. 230  IF X$ = "h" THEN MM=21 : LV=10 : SLV=10: NE=15-2*F : GOTO 270
  23. 240  IF X$ = "v" THEN MM=21 : LV=5  : SLV=15: NE=10-F : GOTO 270
  24. 250  IF X$ = "Q" THEN CLS : END
  25. 260  GOTO 200
  26. 270  CLS : LOCATE 12,28,0 : PRINT "G o o d   L u c k !";
  27. 275  HITS = 0: MISSES =0
  28. 280  FOR I = 1 TO 2000 : NEXT I
  29. 290  CLS
  30. 300  LOCATE 1,SC,0 :PRINT "SCORE 0";
  31. 310  LOCATE 1,RM,0 :PRINT "REMAINING ";MM
  32. 320  IF SIZE = 40 THEN 370
  33. 330  S$ = " 11223344556677889900qqwweerrttyyuuiiooppaassddffgghhjjkkll;;zzxxccvvbbnnmm,,.."
  34. 340  LOCATE 25,1,0 : PRINT S$;
  35. 350  LOCATE 24,1,0 :PRINT " ";:FOR I = 1 TO 39 :PRINT CHR$(223);CHR$(223); :NEXT
  36. 360  GOTO 400
  37. 370  S$ = "1234567890qwertyuiopasdfghjkl;zxcvbnm,."
  38. 380  LOCATE 25,1,0 : PRINT S$;
  39. 390  LOCATE 24,1,0 : FOR I = 1 TO 39 : PRINT CHR$(223); :NEXT
  40. 400  OLDPOS = 20 :NEWPOS = 20 : GOSUB 930
  41. 410  FOR N = 1 TO NE : GOSUB 1050 :NEXT
  42. 420  NP = 1
  43. 430  REM
  44. 440  RN = RE(NP) + 1 : CN = CE(NP)
  45. 450  IF RN < 23 THEN LOCATE RN-1,CN,0 : PRINT " "; :LOCATE RN,CN,0 : PRINT CHR$(MC(NP)); : RE(NP) = RN : GOTO 480
  46. 460  LOCATE 22,CN,0 : PRINT " "; : N = NP
  47. 470  IF (CN = NEWPOS) OR (CN = NEWPOS+1) THEN GOSUB 1100:GOSUB 1050 ELSE GOSUB 1020
  48. 480  X$ = INKEY$
  49. 490  IF X$ = "Q" THEN CLS :END
  50. 500  IF X$ ="1" THEN NEWPOS =1: GOSUB 930
  51. 510  IF X$ ="2" THEN NEWPOS =2: GOSUB 930
  52. 520  IF X$ ="3" THEN NEWPOS =3: GOSUB 930
  53. 530  IF X$ ="4" THEN NEWPOS =4: GOSUB 930
  54. 540  IF X$ ="5" THEN NEWPOS =5: GOSUB 930
  55. 550  IF X$ ="6" THEN NEWPOS =6: GOSUB 930
  56. 560  IF X$ ="7" THEN NEWPOS =7: GOSUB 930
  57. 570  IF X$ ="8" THEN NEWPOS =8: GOSUB 930
  58. 580  IF X$ ="9" THEN NEWPOS =9: GOSUB 930
  59. 590  IF X$ ="0" THEN NEWPOS =10: GOSUB 930
  60. 600  IF X$ ="q" THEN NEWPOS =11: GOSUB 930
  61. 610  IF X$ ="w" THEN NEWPOS =12: GOSUB 930
  62. 620  IF X$ ="e" THEN NEWPOS =13: GOSUB 930
  63. 630  IF X$ ="r" THEN NEWPOS =14: GOSUB 930
  64. 640  IF X$ ="t" THEN NEWPOS =15: GOSUB 930
  65. 650  IF X$ ="y" THEN NEWPOS =16: GOSUB 930
  66. 660  IF X$ ="u" THEN NEWPOS =17: GOSUB 930
  67. 670  IF X$ ="i" THEN NEWPOS =18: GOSUB 930
  68. 680  IF X$ ="o" THEN NEWPOS =19: GOSUB 930
  69. 690  IF X$ ="p" THEN NEWPOS =20: GOSUB 930
  70. 700  IF X$ ="a" THEN NEWPOS =21: GOSUB 930
  71. 710  IF X$ ="s" THEN NEWPOS =22: GOSUB 930
  72. 720  IF X$ ="d" THEN NEWPOS =23: GOSUB 930
  73. 730  IF X$ ="f" THEN NEWPOS =24: GOSUB 930
  74. 740  IF X$ ="g" THEN NEWPOS =25: GOSUB 930
  75. 750  IF X$ ="h" THEN NEWPOS =26: GOSUB 930
  76. 760  IF X$ ="j" THEN NEWPOS =27: GOSUB 930
  77. 770  IF X$ ="k" THEN NEWPOS =28: GOSUB 930
  78. 780  IF X$ ="l" THEN NEWPOS =29: GOSUB 930
  79. 790  IF X$ =";" THEN NEWPOS =30: GOSUB 930
  80. 800  IF X$ ="z" THEN NEWPOS =31: GOSUB 930
  81. 810  IF X$ ="x" THEN NEWPOS =32: GOSUB 930
  82. 820  IF X$ ="c" THEN NEWPOS =33: GOSUB 930
  83. 830  IF X$ ="v" THEN NEWPOS =34: GOSUB 930
  84. 840  IF X$ ="b" THEN NEWPOS =35: GOSUB 930
  85. 850  IF X$ ="n" THEN NEWPOS =36: GOSUB 930
  86. 860  IF X$ ="m" THEN NEWPOS =37: GOSUB 930
  87. 870  IF X$ ="," THEN NEWPOS =38: GOSUB 930
  88. 880  IF X$ ="." THEN NEWPOS =39: GOSUB 930
  89. 890  IF MISSES > MM THEN GOTO 1130
  90. 900  NP = NP + 1 : IF NP = NE THEN NP = 1
  91. 910  GOTO 430
  92. 920  REM
  93. 930  IF SIZE = 40 THEN 980
  94. 940  NEWPOS = 2*NEWPOS : LOCATE 23,OLDPOS,0:PRINT "  ";
  95. 950  LOCATE 23,NEWPOS,0:PRINT CHR$(211);CHR$(189);
  96. 960  OLDPOS = NEWPOS
  97. 970  RETURN
  98. 980  LOCATE 23,OLDPOS,0 :PRINT " ";
  99. 990  LOCATE 23,NEWPOS,0 :PRINT CHR$(127);
  100. 1000  OLDPOS = NEWPOS
  101. 1010  RETURN
  102. 1020  SOUND 15000,1 :SOUND 10000,1 :SOUND 5000,1
  103. 1030  MISSES = MISSES + 1
  104. 1040  LOCATE 1,RM+11,0 : PRINT MM-MISSES+1;
  105. 1050  RE(N) = RND*LV + SLV : CE(N) = RND*RPOS + RS
  106. 1060  MT = RND*9 + 1
  107. 1070  MV(N) = VM(MT) : MC(N) = CM(MT)
  108. 1080  LOCATE RE(N),CE(N),0 :PRINT CHR$(MC(N));
  109. 1090  RETURN
  110. 1100  SOUND 2000,1 : SOUND 1000,1
  111. 1110  HITS = HITS + MV(NP) : LOCATE 1,SC+6,0 : PRINT HITS;
  112. 1120  RETURN
  113. 1130  REM      levels of achievement
  114. 1140  IF HITS < F*10 THEN FOR I = 370 TO 300 STEP -3: SOUND I,1 :NEXT :GOTO 1210
  115. 1150  IF HITS < F*60 THEN FOR I = -8 TO 10 STEP 1 : SOUND 420 + I*ABS(I),1 :NEXT  :GOTO 1210
  116. 1160  IF HITS < F*100 THEN PLAY "o3cco2cc" :GOTO 1210
  117. 1170  IF HITS < F*150 THEN PLAY "o3msl4t210ceeemnl2c" :GOTO 1210
  118. 1180  IF HITS < F*200 THEN FOR I = 10000 TO 2700 STEP -53:SOUND I,1:NEXT I :GOTO 1210
  119. 1190  IF HITS < F*250 THEN PLAY "l2o4cdefgl4gggo5l1c":GOTO 1210
  120. 1200  IF HITS > F*250 THEN GOSUB 1620
  121. 1210  LOCATE 3,1,0 : INPUT "GAME OVER press return to continue ",X$
  122. 1215  IF SIZE = 40 THEN GOSUB 1230 ELSE GOSUB 1390
  123. 1220  GOTO 200
  124. 1230  WIDTH 40 : CLS :PRINT
  125. 1240  SIZE = 40 : RPOS = 38 : SC = 1: RM = 20 : RS = 1
  126. 1250  PRINT "                CATCH88" : PRINT
  127. 1260  PRINT "The object of the game is to catch 'em"
  128. 1270  PRINT "          before they fall."
  129. 1280  PRINT
  130. 1290  PRINT : PRINT "       ";CHR$(25);"  is worth 1 point."
  131. 1300  PRINT "       ";CHR$(157);"  is worth 2 points."
  132. 1310  PRINT "       ";CHR$(15);"  is worth 3 points."
  133. 1320  PRINT "       ";CHR$(2);"  is worth 5 points."
  134. 1330  PRINT : PRINT : PRINT "   A capital  Q  will stop the game."
  135. 1340  PRINT : PRINT
  136. 1350  PRINT "   Choose a suitable level of play :"
  137. 1360  PRINT :PRINT
  138. 1370  PRINT "e(asy  m(edium  h(ard  v(ery hard  Q(uit  ";
  139. 1380  RETURN
  140. 1390  WIDTH 80 : CLS : SIZE = 80 : RPOS = 77 : SC = 10 : RM = 50:RS = 2
  141. 1400  PRINT
  142. 1410  PRINT SPC(19) " [[[[  [[[  [[[[[  [[[[ [   [  [[[   [[[ "
  143. 1420  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  144. 1430  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  145. 1440  PRINT SPC(19) "[     [[[[[   [   [     [[[[[  [[[   [[[ "
  146. 1450  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  147. 1460  PRINT SPC(19) "[     [   [   [   [     [   [ [   [ [   ["
  148. 1470  PRINT SPC(19) " [[[[ [   [   [    [[[[ [   [  [[[   [[[ "
  149. 1480  PRINT
  150. 1490  PRINT SPC(10) "The object of the game is to catch 'em before they fall."
  151. 1500  PRINT SPC(12) "Move the basket by pressing the correct letter key."
  152. 1510  PRINT
  153. 1520  PRINT : PRINT  SPC(29) CHR$(25);"  is worth 1 point."
  154. 1530  PRINT  SPC(29) CHR$(157);"  is worth 2 points."
  155. 1540  PRINT  SPC(29) CHR$(15);"  is worth 3 points."
  156. 1550  PRINT  SPC(29) CHR$(2);"  is worth 5 points."
  157. 1560  PRINT : PRINT : PRINT  SPC(24) "A capital  Q  will stop the game."
  158. 1570  PRINT
  159. 1580  PRINT SPC(24) "Choose a suitable level of play :"
  160. 1590  PRINT :PRINT SPC(19) "e(asy  m(edium  h(ard  v(ery hard   Q(uit";
  161. 1600  LOCATE 12,1,0
  162. 1610  RETURN
  163. 1620  CLS : PRINT :PRINT "     I really did'nt think anyone was"
  164. 1630  PRINT "that fast.  Rescaling ....":PRINT :PRINT:FOR I = 1 TO 2000:NEXT
  165. 1640  SOUND 37,180:FOR I = 1 TO 14000:NEXT:SOUND 37,0
  166. 1650  F = F*2 :PRINT "Next time you run this program,"
  167. 1660  PRINT "press the letter r before you"
  168. 1670  PRINT "enter a 4 or 8.  My very best luck."
  169. 1680  PRINT :PRINT "                           RKC"
  170. 1690  RETURN
  171. 3000  INPUT "Enter your factor number  ",F
  172. 3001  IF F > 5 THEN PRINT "Be reasonable !" : GOTO 3000
  173. 3002  RETURN
  174.